-
Notifications
You must be signed in to change notification settings - Fork 304
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HPCC-32946 Capture and report lookahead timings for hash distributor #19272
base: master
Are you sure you want to change the base?
Conversation
Jira Issue: https://hpccsystems.atlassian.net//browse/HPCC-32946 Jirabot Action Result: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is right, the stream it's counting lookahead time may be the input that you want to count look ahead time, but createHashDistributor could be distributing anything, it's a general utility.
It would better to count the time it spent reading it's input, then let the calling activity gather it's time if it needed to.
49a68f7
to
683cc20
Compare
@jakesmith None of the code from the earlier PR remains, so I haven't retained the earlier commit in this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shamser - please see comments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shamser - looks good. Please squash
509e2b5
to
d72519f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shamser
As far as I can see distributor->queryLookAheadCycles() (and rhsDistributor) is never merged into the slaveTimerStats.
I think it means the local time will be adjusted correctly, but they will not be reported for the activity.
I am not sure of the best solution. Should local stats be calculated inside gatherActiveStats and should that sync distributed lookup stats before calculating?
@jakesmith any thoughts, especially as a general pattern.
I see what you mean, the time is not folded into slaveTimerStats's ActivityTimeAccumulator::lookAheadCycles.
but the reporting (via CSlaveActivity::serializeStats) uses the virtual (that calls through to the base COuputTiming::queryLookAheadCycles()), it doesn't read slaveTimerStats.lookAheadCycles directly. |
Also, the value of lookAheadCycles is needed to calculate local execute time (see CSlaveActivity::queryLocalCycles). If it's merged to slaveTimerStats, there will need to be a lot more refactoring and it will not be a trivial code change. |
PR https://github.com/hpcc-systems/HPCC-Platform/pull/19345/files changed that. That change will need regressing as far as lookahead cycles goes for this to work. |
Signed-off-by: Shamser Ahmed <[email protected]>
Signed-off-by: Shamser Ahmed <[email protected]>
Type of change:
Checklist:
Smoketest:
Testing: